#include <stdio.h>
#include <stdlib.h>

typedef int (* fun_t)(int, int);

int get_add(int, int);
int get_mux(int, int);
int get_jian(int, int);
int get_min(int, int);
int get_max(int, int);

int fun_test(int, int, fun_t);

int
main(int argc, char *argv[])
{
	fun_t fun_list[10];
	fun_list[0] = get_add;
	fun_list[1] = get_mux;
	fun_list[2] = get_jian;
	fun_list[3] = get_min;
	fun_list[4] = get_max;

	for(int i=0; i<5; i++)
	{
		printf("fun %d: %d\n", i, fun_list[i](100, 80));
	}
}

int get_add(int a, int b)
{
	return a + b;
}

int get_mux(int a, int b)
{
	return a * b;
}

int get_jian(int a, int b)
{
	return a - b;
}

int get_max(int a, int b)
{
	return a > b? a : b;
}

int get_min(int a, int b)
{
	return a < b? a : b;
}

int fun_test(int a, int b, fun_t c)
{
	return c(a, b);
}
